import service from './axios.js';

/**
 * 用户认证相关API
 */
const authAPI = {
  /**
   * 用户登录
   * @param {Object} params - 登录参数
   * @param {string} params.username - 用户名
   * @param {string} params.password - 密码
   * @returns {Promise<Object>} 登录响应数据
   */
  login(params) {
    return service.post('/auth/login', params);
  },

  /**
   * 获取当前用户信息
   * @returns {Promise<Object>} 用户信息
   */
  getCurrentUser() {
    return service.get('/auth/currentUser');
  },

  /**
   * 刷新Token
   * @param {string} refreshToken - 刷新令牌
   * @returns {Promise<Object>} 新的token信息
   */
  refreshToken(refreshToken) {
    return service.post('/auth/refreshToken', { refreshToken });
  },

  /**
   * 退出登录
   * @returns {Promise<Object>} 退出结果
   */
  logout() {
    return service.post('/auth/logout');
  },

  /**
   * 获取登录记录
   * @param {Object} params - 查询参数
   * @param {string} params.searchKey - 搜索关键词
   * @param {number} params.pageSize - 每页大小
   * @param {number} params.currentPage - 当前页码
   * @returns {Promise<Object>} 登录记录数据
   */
  getLoginRecords(params) {
    return service.get('/auth/record/list', { params });
  }
};

export default authAPI;

// 导出单独的函数供组件使用
export const getLoginRecords = (params) => authAPI.getLoginRecords(params);